Docker Toolboxを使う
概要
DLして云々
https://www.docker.com/products/docker-toolbox
Docker QuickStart Terminal起動するとデフォルトのDockerMachineが動作する用のVMが一つ作られる。
名前はdefault。
Docker Machine自体をリストアップ
ホストにインストールされてるDocker Machineをリストアップ
docker-machine ls
Docker Machine VMを起動する
ホストのマシンからコマンドで起動できる。
docker-machine start default
起動したDocker Machineにログイン
docker-machine ssh default
Docker Machineを再起動する
docker-machine restart default
Docker Machineにhello-world imageをインストール、実行する
docker run hello-world
docker-hubからDLしてきて実行してる感。
コンテナ名をつけてimageを実行する
docker run --name=“something” hello-world
で、たとえばimageが永続的な代物だと、Docker HubからDL -> 起動したままコントロールが帰ってこなくなる、とかがある。
-dオプションでロックを回避できる。
動作については、別のTerminalとかからログインしてpsとかで見てみるとわかり易い。
過去に起動したimage一覧を見る
docker ps -a
Docker Machineから特定のイメージを削除する
docker rmi hello-world
Docker Machineにインストール済みのイメージ一覧を出す
docker-machineの動作vmを起動した状態で、
docker images
例えばhello-worldを入れた後なら、
docker@default:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 690ed74de00f 5 months ago 960 B
特定のコンテナを実行する
docker start -a something
特定のコンテナを停止させる
docker stop something
特定のコンテナを削除する
docker rm something
一度消すと、ps -aからも起動記録が削除される。
Docker Hubからイメージの検索を行う
docker search SOMETHING
ポートフォワーディング
-pオプションでfrom:toが書ける。
コンテナ実行時にセットする感じ。
docker run -p fromPort:toPort something
試しにnginxを起動してアクセスしてみる
起動とバインド
docker run -d -p 8080:80 nginx
アクセスするためのホストからのipは、ホスト側からDocker Machineの情報を得ることでわかる。
docker-machine env
tomggg:~ tomggg$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/tomggg/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env)
って感じなので、ブラウザから次のurlをhttpでロードしようとすると、
http://192.168.99.100:8080
やったぜ。
ホスト上のパスにコンテナからアクセス
例えばnginxとか入れて、そのコンテンツをホスト側に用意したい場合、
runの-v オプションで実現ができる。
docker run -v targetPath:destinationPath
runのオプション一覧
-d バックグラウンド実行
-v ホストパスの割り当て
-i 標準入力の解放
-t コンテナに仮想コンソールを接続
(-it) 標準入力コンソールを接続した状態になる
-p portの割り当て
知りたいこと
attach
imageへのscp